experiments with GPS for indoor robot navigation

by Jef Mangelschots

These are my collected notes on a presentation given by Alex Brow at the January 2010 meeting where he talked about his experience with GPS for navigation of indoor Leaf-type robots. I have added information from email threads on this same issue.

GPS signals become more accurate when more satellites can be seen by the GPS unit. However, commercial (non-military) GPS devices are only accurate to within 10 meters or so. This is caused by various reasons, like atmospheric propagation, signals bouncing off nearby structures and reduced signal strength inside buildings. Results differ depending on the structure type (wood frame houses vs concrete office buildings). 

WAAS-enabled GPS devices rely on fixed Earth stations that calculate the error and send a correction factor to the satellite, which relays it to the GPS units. This improves the accuracy to approx 10ft in optimal conditions. When the GPS unit remains at a fixed position for longer periods, averaging the continuous signals reduces the error. It was mentioned that if you can keep the location fixed for 1 or 2 days, the error drops to almost 0. Unfortunately, that is not acceptable in robot navigation (unless you are building a robot snail).

Alex illustrated the conditions in his wood frame house where he can receive 6 to 8 satellites indoor.

The situation becomes more dire when inside concrete office buildings. 3 satellites is the absolute bare minimum to get any kind of GPS reading, but inside concrete buildings, 2 satellites is a lot, and only when you are near a window. Concrete buildings are usually not alone. Signal reflection of nearby walls agrevate the situation. An external antenna becomes an option to look into. 

RTK and Differential GPS have been mentioned as potential solution, but these are outside the budget of hobby robotics. 

Alex investigated the idea of using different GPS units and compare their distribution. He compared the Garmin 18x PC, Garmin GPS 12.

    

The Garmin 18x PC  has a grid resolution of about 6 feet per major grid with resolution of 10 units between major grid.  That is a resolution of about 0.6 feet. His tests reveal that it sees about 5 to 7 satellites and readings have WAAS correction. Over time,  the reading slowly drifts back and forth over a range of maybe 50 feet maximum.  The drift rate is fairly random and takes place over many minutes or hours.  He did witness something weird: when he moved the robot over a range of 20 feet or so,  the readings didn't change.  They continued to change slowly just as they did when the robot was standing still. The GPS reported longitude and latitude readings as:

 

    Long =  11745.6094,   Lat   =  33.323966

which translates to 117 degrees and 45.6094 minutes longitude and 33 degrees 32.3966 minutes of latitude. which is about the coordinates of his house.  The readings are accurate to a 10 thousandth of a minute which I calculate as about 0.6 feet resolution.  Hence, moving the robot around 20 feet should make a large change in the 2 least significant digits.  But, it didn't! The thinking was that his unit corrects for drift of the moving speed is less than 1.6 m/s. His root was moving slower than that.

Here are a couple articles on GPS accuracy:

How is the accuracy of a GPS receiver transcribed

Sam Wormley's GPS errors and estimating your receivers accuracy.

John Davis helped out with a simple test on the street with his hand-held Garmin GPS 12. He grabbed two quick measurements 40 ft apart. It went east from W 118.33603 to W 118.33593, along latitude N 33.83988. The distance was measured with a 25 ft. tape measure using painted parking space boundaries. In his experiment, the GPS found at least 5 satellites

The distance was measured with a 25 ft. tape measure using painted parking space boundaries.  The GPS was using at least 5 satellites.

Following is a graph showing recorded data for comparing various GPS units:

Steve Vorres made the following suggestion: use a second GPS receiver at a fixed location which would transmit its received gps coordinates over wifi.  The mobile robot could subtract the stationary gps readings from its mobile readings and (hopefully) remove any drift error, IF they both experience the same drift.

Mike from Victorville recommended the Magellan SporTrak, which he claims has excellent indoor accuracy, but he might have been experiencing optimal conditions. 

An other loophole is that the advertised accuracies are achieved 95% of the time, which would be pretty good if the errors had a Gaussian distribution.  Alex's measuresments show that much of the time,  the signal is pretty accurate; and the rest of the time (maybe 5%?) the signal takes LARGE excursions which may last for minutes, which is kind of shitty if you are waiting for your bot to fetch a cold beer. 

John Davis his GPS 12 unit for a PHAROS PB010 USB GPS receiver for use in his RoboMagellan robot.